# Install kubernetes

VPS_PROXY='socks5://192.168.2.3:1081'
VPS_PROXY_NULL=""

###############################################################
# Update mirrors
###############################################################
echo  "Update Mirrors...."
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sudo curl -o /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
sudo yum makecache

###############################################################
# Install  docker 
###############################################################

sudo yum remove -y docker-ce docker-ce-selinux container-selinux
sudo rm -rf /var/lib/docker

# 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast

# Install docker v17.03  
echo "Install docker ...."
sudo yum install -y --setopt=obsoletes=0 docker-ce-17.03.1.ce-1.el7.centos docker-ce-selinux-17.03.1.ce-1.el7.centos
sudo systemctl enable docker && sudo systemctl start docker

## 
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": ["https://4lmb1y64.mirror.aliyuncs.com"]

}
EOF
sudo systemctl daemon-reload  # Flush changes
sudo systemctl restart docker

###############################################################
# Install kubelet kubeadm kubectl 
###############################################################
echo "Install kubelet kubeadm kubectl..."

sudo tee /etc/yum.repos.d/kubernetes.repo  <<-'EOF'
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

sudo yum install -y kubelet kubeadm kubectl
sudo systemctl enable kubelet && sudo systemctl start kubelet


###############################################################
# 3. 系统相关　配置 
###############################################################


sudo setenforce 0  #关闭selinux

# 关闭swap 分区
echo "close swap ..."
# kubelet requires swap off
sudo swapoff -a
# keep swap off after reboot
sudo sed -i 's/.*swap.*/#&/' /etc/fstab

echo "close firewalld"
sudo systemctl disable firewalld
sudo systemctl stop firewalld

# 配置相关参数
sudo tee /etc/sysctl.d/k8s.conf <<'EOF'  
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness=0
EOF
sudo sysctl --system

# ###############################################################
sudo yum install -y vim

# ###############################################################
# # 3. config cgroupfs 
# ###############################################################
# # sed -i '/ExecStart=/a Environment="KUBELET_EXTRA_ARGS=--cgroup-driver=cgroupfs"' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
# sed -i '0,/ExecStart=/s//Environment="KUBELET_EXTRA_ARGS=--cgroup-driver=cgroupfs"\n&/' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
#   

# ##########################################
# # 4. set docker proxy
# ##########################################

# sudo mkdir -p /etc/systemd/system/docker.service.d
# sudo tee /etc/systemd/system/docker.service.d/socks5-proxy.conf <<-'EOF'
# [Service]
# Environment="ALL_PROXY=socks5://192.168.2.3:1081"
# EOF
# 
# # sudo mkdir -p /etc/systemd/system/docker.service.d
# # sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf <<-'EOF'
# # [Service]
# # Environment="HTTP_PROXY=socks5://192.168.2.3:1081"
# # EOF
# # 
# # sudo tee /etc/systemd/system/docker.service.d/https-proxy.conf <<-'EOF'
# # [Service]
# # Environment="HTTPS_PROXY=socks5://192.168.2.3:1081"
# # EOF

# Flush changes:
# sudo systemctl daemon-reload

# Restart Docker:
# sudo systemctl restart docker

# Verify that the configuration has been loaded:
#systemctl show --property=Environment docker
#Environment=HTTP_PROXY=http://proxy.example.com:80/
